﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Arthus
{
    public partial class knjizenjeDokumenataForma : Form
    {
        //neophodno za štampanje
        StringFormat strFormat; //Used to format the grid rows.
        ArrayList arrColumnLefts = new ArrayList();//Used to save left coordinates of columns
        ArrayList arrColumnWidths = new ArrayList();//Used to save column widths
        int iCellHeight = 0; //Used to get/set the datagridview cell height
        int iTotalWidth = 0; //
        int iRow = 0;//Used as counter
        bool bFirstPage = false; //Used to check whether we are printing first page
        bool bNewPage = false;// Used to check whether we are printing a new page
        int iHeaderHeight = 0; //Used for the header height

        private int FINID;
        private string idZaglavlja;
        private decimal Duguje, Potrazuje;
        private decimal VPvrednost, VPRUC, ukalkulisaniRUC, ukalkulisaniPDV, MPvrednost, MPnivelacija; //za dostavnicu
        private decimal racunUkupno, PDVvisaTarifa, PDVnizaTarifa, vrednostiSUM, nivelacijaSUM, rucSUM, nabavneVrednosti; //za kalkulaciju
        private string datumDokumenta, datumDospeca; //za kalkulaciju
        private decimal iznosRabata, osnovicaPDV, iznosPDV, ukupnoZaUplatu, zbirNivelacija; //za izlazni racun


        public knjizenjeDokumenataForma(String idZag, int finID, decimal d, decimal p, decimal vpVrednost, decimal vpRUC, decimal ukRUC, decimal ukPDV, decimal mpVrednost, decimal mpNivelacija)
        {
            // za dostavnicu
            InitializeComponent();
            this.idZaglavlja = idZag;
            this.FINID = finID;

            this.Duguje = d;
            this.Potrazuje = p;
            this.VPvrednost = vpVrednost;
            this.VPRUC = vpRUC;
            this.ukalkulisaniRUC = ukRUC;
            this.ukalkulisaniPDV = ukPDV;
            this.MPvrednost = mpVrednost;
            this.MPnivelacija = mpNivelacija;
            dateTimePickerDatumKnjizenja.Value = DateTime.Now;
            checkBoxAutoBrojDokumenta.Checked = true;
            textBoxDuguje.Text = Convert.ToString(-(VPvrednost + VPRUC) + VPRUC + MPvrednost);
            textBoxPotrazuje.Text = Convert.ToString(VPRUC + ukalkulisaniRUC + ukalkulisaniPDV);
            PromenaCheckBoxAutoBrojDokumenta();
        }
        public knjizenjeDokumenataForma(String idZag, int finID, decimal d, decimal p)
        {
            // opste
            InitializeComponent();
            this.idZaglavlja = idZag;
            this.FINID = finID;

            this.Duguje = d;
            this.Potrazuje = p;
            dateTimePickerDatumKnjizenja.Value = DateTime.Now;
            checkBoxAutoBrojDokumenta.Checked = true;
            PromenaCheckBoxAutoBrojDokumenta();
        }
        public knjizenjeDokumenataForma(String idZag, int finID, decimal rU, decimal pdvVisi, decimal pdvNizi, decimal vrednosti, decimal nivelacije,
            decimal rucovi, decimal nv, string DPO, string DSP) 
        {
            //za kalkulaciju
            InitializeComponent();
            this.idZaglavlja = idZag;
            this.FINID = finID;

            this.racunUkupno = rU;
            this.PDVvisaTarifa = pdvVisi;
            this.PDVnizaTarifa = pdvNizi;
            this.vrednostiSUM = vrednosti;
            this.nabavneVrednosti = nv;
            this.nivelacijaSUM = nivelacije;
            this.rucSUM = rucovi;
            this.datumDokumenta = DPO;
            this.datumDospeca = DSP;
            dateTimePickerDatumKnjizenja.Value = DateTime.Now;
            checkBoxAutoBrojDokumenta.Checked = true;
            textBoxDuguje.Text = Convert.ToString(PDVvisaTarifa+PDVnizaTarifa+vrednostiSUM+nivelacijaSUM);
            textBoxPotrazuje.Text = Convert.ToString(racunUkupno+rucSUM+nivelacijaSUM);
            textBoxRazlika.Text = Convert.ToString(Convert.ToDecimal(textBoxDuguje.Text) - Convert.ToDecimal(textBoxPotrazuje.Text));
            PromenaCheckBoxAutoBrojDokumenta();
        }
        public knjizenjeDokumenataForma(String idZag, int finID, decimal iR, decimal oPDV, decimal iPDV, decimal uZu, decimal zN, string DPO, string DSP) 
        {
            //za izlazni racun
            InitializeComponent();
            this.idZaglavlja = idZag;
            this.FINID = finID;

            this.iznosRabata = iR;
            this.osnovicaPDV = oPDV;
            this.iznosPDV = iPDV;
            this.ukupnoZaUplatu = uZu;
            this.zbirNivelacija = zN;
            this.datumDokumenta = DPO;
            this.datumDospeca = DSP;
            dateTimePickerDatumKnjizenja.Value = DateTime.Now;
            checkBoxAutoBrojDokumenta.Checked = true;
            textBoxDuguje.Text = Convert.ToString(ukupnoZaUplatu + osnovicaPDV + iznosRabata + zbirNivelacija);
            textBoxPotrazuje.Text = Convert.ToString(iznosPDV+osnovicaPDV+osnovicaPDV+iznosRabata+zbirNivelacija);
            textBoxRazlika.Text = Convert.ToString(Convert.ToDecimal(textBoxDuguje.Text) - Convert.ToDecimal(textBoxPotrazuje.Text));
            PromenaCheckBoxAutoBrojDokumenta();
        }
        ZAG zagObjekat = null;
        FIN finObjekat = null;
        FST fstObjekat = null;

        private void knjizenjeDokumenataForma_Load(object sender, EventArgs e)
        {
            zagObjekat = new ZAG();
            zagObjekat.PopuniKontroleUKnjizenjeDokumenataForma(idZaglavlja, textBoxPreduzece, textBoxVrstaNaloga, textBoxOpis, textBoxOpis2, textBoxVrstaNalogaNaziv,
                textBoxAutoBrojDokumenta);
            PromenaVidljivostiKontrolaNaOsnovuProknjizenosti();
            finObjekat = new FIN();
            finObjekat.PunjenjeElemenataZaStampanjeDokumenta(textBoxPreduzeceInformacije, textBoxPodaciONalogu, dataGridViewKnjizenjeStampanje, FINID, textBoxDuguje,
                textBoxPotrazuje, textBoxRazlika);
            foreach (DataGridViewRow red in dataGridViewKnjizenjeStampanje.Rows)
            {
                foreach (DataGridViewCell celija in red.Cells)
                {
                    if (celija.Value != null)
                    {
                        if (celija.Value.ToString().Equals("Odgovorno") || celija.Value.ToString().Equals("lice"))
                        {
                            celija.Style.Font = new Font("Arial", 10);
                        }
                    }
                }
            }
        }

        private void PromenaVidljivostiKontrolaNaOsnovuProknjizenosti()
        {
            if (FINID != 0)
            {
                buttonProknjizi.Enabled = false;
                buttonStampanje.Enabled = true;
                buttonStampaPregled.Enabled = true;
                buttonIsknjizavanje.Enabled = true;
            }
            else
            {
                buttonProknjizi.Enabled = true;
                buttonStampanje.Enabled = false;
                buttonStampaPregled.Enabled = false;
                buttonIsknjizavanje.Enabled = false;
            }
        }

        private void PromenaCheckBoxAutoBrojDokumenta()
        { //metoda koja menja vizibilnost textbox-ova automatskog broja dokumenta
            if (checkBoxAutoBrojDokumenta.Checked == true)
            {
                //ako je cekiran checkBoxAutoBrojDokumenta
                textBoxAutoBrojDokumenta.Enabled = false;
            }
            else
            {
                //ako nije cekiran
                textBoxAutoBrojDokumenta.Enabled = true;
            }
        }
        private void checkBoxAutoBrojDokumenta_CheckedChanged(object sender, EventArgs e)
        {
            PromenaCheckBoxAutoBrojDokumenta();
        }

        private void knjizenjeDokumenataForma_Activated(object sender, EventArgs e)
        {
            
        }

        private void buttonZatvori_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void buttonProknjizi_Click(object sender, EventArgs e)
        {
            finObjekat = new FIN();
            finObjekat.UbacuUFIN(textBoxPreduzece.Text, dateTimePickerDatumKnjizenja, textBoxVrstaNaloga.Text, textBoxAutoBrojDokumenta, textBoxOpis, textBoxOpis2.Text,
                textBoxDuguje, textBoxPotrazuje);
            zagObjekat = new ZAG();
            zagObjekat.IzmeniUZAGprilikomKnjizenja(Convert.ToInt32(idZaglavlja), dateTimePickerDatumKnjizenja);
            FINID = zagObjekat.VratiIDFINnalogaNaOsnovuZAGID(Convert.ToInt32(idZaglavlja));
            if (textBoxVrstaNaloga.Text.Equals("DS"))
            {
                //ukoliko je dokument dostavnica
                fstObjekat = new FST();
                fstObjekat.UbaciUFSTKnjizenje(FINID, "1320", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                    -(VPvrednost + VPRUC), 0.00m, 1, true, "NULL", "NULL");
                fstObjekat.UbaciUFSTKnjizenje(FINID, "1340", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                    MPvrednost, 0.00m, 1, true, "NULL", "NULL");
                fstObjekat.UbaciUFSTKnjizenje(FINID, "1344", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                    0.00m, ukalkulisaniPDV, 1, true, "NULL", "NULL");
                if (VPRUC == 0 && MPnivelacija == 0 && ukalkulisaniRUC != 0)
                {
                    //ukoliko je VPRUC 0 i MPnivelacije 0
                    fstObjekat.UbaciUFSTKnjizenje(FINID, "1349", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                    0.00m, ukalkulisaniRUC, 1, true, "NULL", "NULL");
                }
                else if (VPRUC != 0 && ukalkulisaniRUC == 0 && MPnivelacija == 0)
                {
                    //ukoliko je ukalkulisani RUC 0 i MPnivelacije 0
                    fstObjekat.UbaciUFSTKnjizenje(FINID, "1329", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                   0.00m, VPRUC, 1, true, "NULL", "NULL");
                    fstObjekat.UbaciUFSTKnjizenje(FINID, "1320", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                   VPRUC, 0.00m, 1, true, "NULL", "NULL");
                }
                else if (VPRUC != 0 && ukalkulisaniRUC != 0 && MPnivelacija == 0)
                {
                    //ukoliko je sve razlicito od nule osim mp nivelacije
                    fstObjekat.UbaciUFSTKnjizenje(FINID, "1329", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                  0.00m, VPRUC, 1, true, "NULL", "NULL");
                    fstObjekat.UbaciUFSTKnjizenje(FINID, "1320", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                   VPRUC, 0.00m, 1, true, "NULL", "NULL");
                    fstObjekat.UbaciUFSTKnjizenje(FINID, "1349", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                   0.00m, ukalkulisaniRUC, 1, true, "NULL", "NULL");
                }
            }
            else if (textBoxVrstaNaloga.Text.Equals("UR")) 
            {
                fstObjekat = new FST();
                if (racunUkupno != 0) {
                    fstObjekat.UbaciUFSTKnjizenje(FINID, "4330", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                            0.00m, racunUkupno, 1, true, datumDokumenta, datumDospeca);
                }
                if (PDVvisaTarifa != 0) {
                    fstObjekat.UbaciUFSTKnjizenje(FINID, "2700", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                        PDVvisaTarifa, 0.00m, 1, true, "NULL", "NULL");
                }
                if (PDVnizaTarifa != 0) {
                    fstObjekat.UbaciUFSTKnjizenje(FINID, "2710", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                            PDVnizaTarifa, 0.00m, 1, true, "NULL", "NULL");
                }
                if (vrednostiSUM != 0) {
                    fstObjekat.UbaciUFSTKnjizenje(FINID, "1320", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                                vrednostiSUM, 0.00m, 1, true, "NULL", "NULL");
                }
                if (vrednostiSUM - nabavneVrednosti != 0)
                {
                    fstObjekat.UbaciUFSTKnjizenje(FINID, "1329", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                                    0.00m, vrednostiSUM - nabavneVrednosti, 1, true, "NULL", "NULL");
                }
                if (nivelacijaSUM != 0) {
                    fstObjekat.UbaciUFSTKnjizenje(FINID, "1320", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                                nivelacijaSUM, 0.00m, 1, true, "NULL", "NULL");
                    fstObjekat.UbaciUFSTKnjizenje(FINID, "1329", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                                        0.00m, nivelacijaSUM, 1, true, "NULL", "NULL");
                }
            }
            else if (textBoxVrstaNaloga.Text.Equals("IR")) 
            {
                fstObjekat = new FST();
                if (ukupnoZaUplatu != 0) {
                    fstObjekat.UbaciUFSTKnjizenje(FINID, "2020", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                                            ukupnoZaUplatu, 0.00m, 1, true, datumDokumenta, datumDospeca);
                }
                if (iznosPDV != 0) {
                    fstObjekat.UbaciUFSTKnjizenje(FINID, "4700", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                                                0.00m, iznosPDV , 1, true, "NULL", "NULL");
                }
                if (osnovicaPDV != 0) {
                    fstObjekat.UbaciUFSTKnjizenje(FINID, "1320", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                                                    0.00m, osnovicaPDV, 1, true, "NULL", "NULL");
                    fstObjekat.UbaciUFSTKnjizenje(FINID, "6021", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                                                0.00m, osnovicaPDV, 1, true, "NULL", "NULL");
                }
                if (osnovicaPDV != 0)
                {
                    fstObjekat.UbaciUFSTKnjizenje(FINID, "5010", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                                                osnovicaPDV, 0.00m, 1, true, "NULL", "NULL");
                }
                if (iznosRabata != 0) {
                    fstObjekat.UbaciUFSTKnjizenje(FINID, "1320", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                                                    iznosRabata , 0.00m, 1, true, "NULL", "NULL");
                    fstObjekat.UbaciUFSTKnjizenje(FINID, "1329", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                                                   0.00m, iznosRabata, 1, true, "NULL", "NULL");
                }

                if (zbirNivelacija != 0) {
                    fstObjekat.UbaciUFSTKnjizenje(FINID, "1329", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                                                       0.00m, zbirNivelacija, 1, true, "NULL", "NULL");
                    fstObjekat.UbaciUFSTKnjizenje(FINID, "1320", 0, textBoxOpis2.Text, textBoxOpis.Text, textBoxOpis2.Text, dateTimePickerDatumKnjizenja,
                                                       zbirNivelacija, 0.00m, 1, true, "NULL", "NULL");
                }
            }
            MessageBox.Show("Nalog je uspešno proknjižen!");
            zagObjekat = new ZAG();
            zagObjekat.PopuniKontroleUKnjizenjeDokumenataForma(idZaglavlja, textBoxPreduzece, textBoxVrstaNaloga, textBoxOpis, textBoxOpis2, textBoxVrstaNalogaNaziv,
                textBoxAutoBrojDokumenta);
            PromenaVidljivostiKontrolaNaOsnovuProknjizenosti();
            finObjekat = new FIN();
            finObjekat.PunjenjeElemenataZaStampanjeDokumenta(textBoxPreduzeceInformacije, textBoxPodaciONalogu, dataGridViewKnjizenjeStampanje, FINID, textBoxDuguje,
                textBoxPotrazuje, textBoxRazlika);
            foreach (DataGridViewRow red in dataGridViewKnjizenjeStampanje.Rows)
            {
                foreach (DataGridViewCell celija in red.Cells)
                {
                    if (celija.Value != null)
                    {
                        if (celija.Value.ToString().Equals("Odgovorno") || celija.Value.ToString().Equals("lice"))
                        {
                            celija.Style.Font = new Font("Arial", 10);
                        }
                    }
                }
            }
            buttonZatvori.Focus();
        }

        private void printDocumentStampanjeFINNaloga_BeginPrint(object sender, System.Drawing.Printing.PrintEventArgs e)
        {
            try
            {
                strFormat = new StringFormat();
                strFormat.Alignment = StringAlignment.Near;
                strFormat.LineAlignment = StringAlignment.Center;
                strFormat.Trimming = StringTrimming.EllipsisCharacter;

                arrColumnLefts.Clear();
                arrColumnWidths.Clear();
                iCellHeight = 0;
                iRow = 0;
                bFirstPage = true;
                bNewPage = true;

                // Calculating Total Widths
                iTotalWidth = 0;
                foreach (DataGridViewColumn dgvGridCol in dataGridViewKnjizenjeStampanje.Columns)
                {
                    iTotalWidth += dgvGridCol.Width;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void printDocumentStampanjeFINNaloga_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            try
            {
                //ubacivanje u datatable

                //Set the left margin
                int iLeftMargin = e.MarginBounds.Left;
                //Set the top margin
                int iTopMargin = e.MarginBounds.Top;
                //Whether more pages have to print or not
                bool bMorePagesToPrint = false;
                int iTmpWidth = 0;

                //For the first page to print set the cell width and header height
                if (bFirstPage)
                {
                    //Draw Informacije o preduzecu
                    e.Graphics.DrawString(textBoxPreduzeceInformacije.Text,
                        new Font("Arial", 14, FontStyle.Regular),
                        Brushes.Black, e.MarginBounds.Left,
                        e.MarginBounds.Top - e.Graphics.MeasureString(textBoxPreduzeceInformacije.Text,
                        new Font("Arial", 14, FontStyle.Regular),
                        e.MarginBounds.Width).Height + 50);

                    //Draw Informacije o finansijskom nalogu
                    e.Graphics.DrawString(textBoxPodaciONalogu.Text,
                        new Font("Arial", 14, FontStyle.Regular),
                        Brushes.Black, e.MarginBounds.Left + 400,
                        e.MarginBounds.Top - e.Graphics.MeasureString(textBoxPodaciONalogu.Text,
                        new Font("Arial", 14, FontStyle.Regular),
                        e.MarginBounds.Width).Height + 50);

                    foreach (DataGridViewColumn GridCol in dataGridViewKnjizenjeStampanje.Columns)
                    {
                        iTmpWidth = (int)(Math.Floor((double)((double)GridCol.Width /
                            (double)iTotalWidth * (double)iTotalWidth *
                            ((double)e.MarginBounds.Width / (double)iTotalWidth))));

                        iHeaderHeight = (int)(e.Graphics.MeasureString(GridCol.HeaderText,
                            GridCol.InheritedStyle.Font, iTmpWidth).Height) + 15;

                        // Save width and height of headers
                        arrColumnLefts.Add(iLeftMargin);
                        arrColumnWidths.Add(iTmpWidth);
                        iLeftMargin += iTmpWidth;
                    }
                }
                //Loop till all the grid rows not get printed

                while (iRow <= dataGridViewKnjizenjeStampanje.Rows.Count - 1)
                {
                    DataGridViewRow GridRow = dataGridViewKnjizenjeStampanje.Rows[iRow];
                    //Set the cell height
                    iCellHeight = GridRow.Height + 10;
                    int iCount = 0;
                    //Check whether the current page settings allows more rows to print
                    if (iTopMargin + iCellHeight >= e.MarginBounds.Height + e.MarginBounds.Top)
                    {
                        bNewPage = true;
                        bFirstPage = false;
                        bMorePagesToPrint = true;
                        break;
                    }
                    else
                    {
                        if (bNewPage)
                        {
                            //Draw Columns                 
                            iTopMargin = e.MarginBounds.Top;
                            foreach (DataGridViewColumn GridCol in dataGridViewKnjizenjeStampanje.Columns)
                            {
                                e.Graphics.FillRectangle(new SolidBrush(Color.LightGray),
                                    new Rectangle((int)arrColumnLefts[iCount], iTopMargin + 50,
                                    (int)arrColumnWidths[iCount], iHeaderHeight));

                                e.Graphics.DrawRectangle(Pens.Black,
                                    new Rectangle((int)arrColumnLefts[iCount], iTopMargin + 50,
                                    (int)arrColumnWidths[iCount], iHeaderHeight));

                                e.Graphics.DrawString(GridCol.HeaderText,
                                    GridCol.InheritedStyle.Font,
                                    new SolidBrush(GridCol.InheritedStyle.ForeColor),
                                    new RectangleF((int)arrColumnLefts[iCount], iTopMargin + 50,
                                    (int)arrColumnWidths[iCount], iHeaderHeight), strFormat);
                                iCount++;
                            }
                            bNewPage = false;
                            iTopMargin += iHeaderHeight;
                        }
                        iCount = 0;
                        //Draw Columns Contents                
                        foreach (DataGridViewCell Cel in GridRow.Cells)
                        {
                            if (Cel.Value != null && Cel.Value.ToString() != "")
                            {
                                e.Graphics.DrawString(Cel.Value.ToString(),
                                    Cel.InheritedStyle.Font,
                                    new SolidBrush(Cel.InheritedStyle.ForeColor),
                                    new RectangleF((int)arrColumnLefts[iCount],
                                    (float)iTopMargin + 50,
                                    (int)arrColumnWidths[iCount], (float)iCellHeight),
                                    strFormat);
                                //Drawing Cells Borders
                                if (!Cel.Value.ToString().Equals("Odgovorno") && !Cel.Value.ToString().Equals("lice"))
                                {
                                    e.Graphics.DrawRectangle(Pens.Black,
                                    new Rectangle((int)arrColumnLefts[iCount], iTopMargin + 50,
                                    (int)arrColumnWidths[iCount], iCellHeight));
                                }
                            }
                            iCount++;
                        }
                    }
                    iRow++;
                    iTopMargin += iCellHeight;
                }
                //If more lines exist, print another page.
                if (bMorePagesToPrint)
                    e.HasMorePages = true;
                else
                    e.HasMorePages = false;
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message, "Error", MessageBoxButtons.OK,
                   MessageBoxIcon.Error);
            }
        }

        private void buttonStampaPregled_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;
            PrintPreviewDialog objPPdialog = new PrintPreviewDialog();
            objPPdialog.Document = printDocumentStampanjeFINNaloga;
            PrintDialog objPrintDialog = new PrintDialog();
            ((Form)objPPdialog).WindowState = FormWindowState.Maximized;
            objPPdialog.ShowDialog();
            this.Cursor = Cursors.Default;
        }

        private void buttonStampanje_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;
            PrintDialog printDialogObjekat = new PrintDialog();
            printDialogObjekat.Document = printDocumentStampanjeFINNaloga;
            printDialogObjekat.ShowDialog();
            this.Cursor = Cursors.Default;
        }

        private void buttonIsknjizavanje_Click(object sender, EventArgs e)
        {
            DialogResult rezultatDialoga = MessageBox.Show("Da li ste sigurni da želite da isknjižite ovaj nalog?", "Isknjižavanje", MessageBoxButtons.YesNo);
            if (rezultatDialoga == DialogResult.Yes)
            {
                fstObjekat = new FST();
                finObjekat = new FIN();
                zagObjekat = new ZAG();
                fstObjekat.ObrisiFSTPremaFINid(FINID);
                finObjekat.ObrisiFinPremaID(FINID);
                zagObjekat.IzmeniUZAGprilikomIsknjizavanja(FINID);
                FINID = 0;
                textBoxPreduzeceInformacije.Text = "";
                textBoxPodaciONalogu.Text = "";
                dataGridViewKnjizenjeStampanje.Rows.Clear();
                buttonIsknjizavanje.Enabled = false;
                buttonProknjizi.Enabled = true;
                MessageBox.Show("Nalog je uspešno isknjižen");
            }
        }

        private void textBoxAutoBrojDokumenta_KeyPress(object sender, KeyPressEventArgs e)
        {
            Razno.DozvoliSamoBrojeve(sender, e);
        }
    }
}
